home *** CD-ROM | disk | FTP | other *** search
/ Capture the Power of the Internet / Capture the Power of the Internet.iso / mac / MacFiles / MultimediaTools / Audio-Visual / betterplay.sit / BetterPlayer 1.0.2 / source / source.00.6 / QuickTime.INCL / QuickTime.INCL
Encoding:
Text File  |  2000-02-02  |  9.4 KB  |  372 lines  |  [TEXT/FB^e]

  1. clear LOCAL MODE
  2. LOCAL FN InitMovies
  3. DIM MovieBlockPtr as pointer to MovieInfo
  4.  
  5. LONG IF FN ENTERMOVIES = 0
  6. MovieBlockPtr = FN NEWPTRclear (sizeof(MovieInfo)*64)
  7. XELSE
  8. MovieBlockPtr = 0
  9. END IF
  10. END FN = MovieBlockPtr
  11.  
  12. clear LOCAL MODE
  13. LOCAL FN PlayMovie (MovieBlockPtr as pointer to MovieInfo)
  14. DIM OSErr%
  15.  
  16. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  17. OSErr% = FN PREROLLMOVIE(MovieBlockPtr.MovieH,0,&1000)
  18. CALL STARTMOVIE(MovieBlockPtr.MovieH)
  19.  
  20. MovieCT& = MovieBlockPtr.MovieController&
  21. x=FN MCMovieChanged(MovieCT&,MovieH)
  22.  
  23. END FN
  24.  
  25. clear LOCAL MODE
  26. LOCAL FN RewindMovie (MovieBlockPtr as pointer to MovieInfo)
  27. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  28. CALL GOTOBEGINNINGOFMOVIE(MovieBlockPtr.MovieH)
  29.  
  30. MovieCT& = MovieBlockPtr.MovieController&
  31. x=FN MCMovieChanged(MovieCT&,MovieH)
  32.  
  33. END FN
  34.  
  35. clear LOCAL MODE
  36. LOCAL FN StopMovie (MovieBlockPtr as pointer to MovieInfo)
  37. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  38. CALL STOPMOVIE(MovieBlockPtr.MovieH)
  39.  
  40. MovieCT& = MovieBlockPtr.MovieController&
  41. x=FN MCMovieChanged(MovieCT&,MovieH)
  42.  
  43. END FN
  44.  
  45. local fn GetChangeCreator$
  46. end fn = gChangeCreator$
  47.  
  48. local fn GetAutoPlayVar$
  49. end fn = gAutoPlay$
  50.  
  51. local fn GetLoopVar$
  52. end fn = gLoop$
  53.  
  54. CLEAR LOCAL MODE
  55. LOCAL FN NewMovieWindow(MovieBlockPtr as pointer to MovieInfo,FileName$,VRefNum%,MovieTop%,MovieLeft%,Flags%)
  56. DIM ParamBlock.128,CGrafPtr&,CurDev&,MovieCT&,Movie&,OSErr%,WndID%,MovieResRefNum%,ResID%,DateRefChanged%,ResName$
  57. DIM BoxRect as rect
  58. DIM MCRect as rect
  59. DIM @ FSSpec;0,FSVRefNum%,FSParID&,63 FSName$
  60.  
  61. WndID%     = 0
  62. FSVRefNum% = VRefNum%
  63. FSName$    = FileName$
  64.  
  65. LONG IF MovieBlockPtr
  66. myFirstResFile% = FN CURRESFILE
  67. LONG IF FSName$ = ""
  68. FSName$ =FILES$(1,"",,FSVRefNum%)
  69. END IF
  70.  
  71. LONG IF FSName$ <> ""
  72. ParamBlock.ioNamePtr&   = @FSName$
  73. ParamBlock.ioVRefNum%   = FSVRefNum%
  74. ParamBlock.ioFDirIndex% = 0
  75.  
  76. OSErr% = FN GETCATINFO(ParamBlock)
  77. FSParID& = [@ParamBlock + _ioFLParID]
  78.  
  79. LONG IF FN OPENMOVIEFILE(FSSpec,MovieResRefNum%,_FSRdPerm) = _NoErr
  80. LONG IF FN NEWMOVIEFROMFILE(Movie&,MovieResRefNum%,ResID%,ResName$,1,DateRefChanged%) = _noErr
  81.  
  82. DO
  83. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo)
  84. INC(WndID%)
  85. UNTIL WINDOW(-WndID%) = 0
  86.  
  87. CALL GETMOVIEBOX(Movie&,BoxRect)
  88. CALL OFFSETRECT(BoxRect,-BoxRect.Left%,-BoxRect.Top%)
  89.  
  90. LONG IF Flags% AND 8
  91. BoxRect.Bottom% = BoxRect.Bottom% + BoxRect.Bottom%
  92. BoxRect.Right% = BoxRect.Right% + BoxRect.Right%
  93. END IF
  94.  
  95. long if BoxRect.Bottom% =< 16 or BoxRect.Right% =< 16
  96. BoxRect.Bottom% = 0
  97. BoxRect.Right% = 150
  98. end if
  99.  
  100. CALL SETMOVIEBOX(Movie&,BoxRect.Top%)
  101.  
  102. WINDOW WndID%,FSName$,(MovieLeft%,MovieTop%)-(BoxRect.Right%+MovieLeft%,MovieTop%+BoxRect.Bottom%+16),_docNoGrow
  103. CALL GETGWORLD(CGrafPtr&,CurDev&)
  104. CALL SETMOVIEGWORLD(Movie&,CGrafPtr&,0)
  105.  
  106. MCRect;8 = CGrafPtr&+_PortRect
  107. MovieCT& = FN NEWMOVIECONTROLLER(Movie&,MCRect,&15)
  108.  
  109. MovieBlockPtr.MovieH = Movie&
  110. MovieBlockPtr.MovieController& = MovieCT&
  111. MovieBlockPtr.MoviePort = CGrafPtr&
  112. MovieBlockPtr.MovieResRefNum% = MovieResRefNum%
  113. MovieBlockPtr.MovieFlags% = Flags%
  114. MovieBlockPtr.MovieLoop% = _false
  115. MovieBlockPtr.MovieAutoplay% = _false
  116. MovieBlockPtr.MovieLocation% = FSVRefNum%
  117. MovieBlockPtr.MovieNames$ = FSName$
  118.  
  119. x$=FN GetString$ (FSName$,FSVRefNum%,5000)
  120. long if x$="Y" or x$="N"
  121. long if x$ = "Y"
  122. MovieBlockPtr.MovieAutoplay% = _true
  123. xelse
  124. MovieBlockPtr.MovieAutoplay% = _false
  125. end if
  126. xelse
  127. long if FN GetAutoPlayVar$ = "Y"
  128. MovieBlockPtr.MovieAutoplay% = _true
  129. xelse
  130. MovieBlockPtr.MovieAutoplay% = _false
  131. end if
  132. end if
  133.  
  134. x$=FN GetString$ (FSName$,FSVRefNum%,5001)
  135. long if x$="Y" or x$="N"
  136. long if x$ = "Y"
  137. MovieBlockPtr.MovieLoop% = _true
  138. xelse
  139. MovieBlockPtr.MovieLoop% = _false
  140. end if
  141. xelse
  142. long if FN GetLoopVar$ = "Y"
  143. MovieBlockPtr.MovieLoop% = _true
  144. xelse
  145. MovieBlockPtr.MovieLoop% = _false
  146. end if
  147. end if
  148.  
  149. long if MovieBlockPtr.MovieAutoplay% = _true
  150. CALL startmovie(Movie&)
  151. CALL GOTOBEGINNINGOFMOVIE(Movie&)
  152. x%=FN MCMovieChanged(MovieCT&,Movie&)
  153. end if
  154.  
  155. END IF
  156. END IF
  157. END IF
  158. END IF
  159. CALL USERESFILE (myFirstResFile%)
  160. END FN = WndID%
  161.  
  162. LOCAL FN ControllerEvent(MovieCT&,EventPtr&)
  163. LONG IF fn MCISPLAYEREVENT(MovieCT&,#EventPtr&) = 1
  164. % EventPtr&,0
  165. END IF
  166. END FN
  167.  
  168. LOCAL MODE
  169. LOCAL FN TryMovieEvent(MovieBlockPtr as pointer to MovieInfo,EventPtr&)
  170. LONG IF MovieBlockPtr
  171. DIM OldPort&,ThePort&,MovieCT&,Movie&,OSErr%,WndID%
  172.  
  173. CALL GETPORT(OldPort&)
  174.  
  175. FOR WndID% = 1 TO 63
  176. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo)
  177. Movie& = MovieBlockPtr.MovieH
  178. LONG IF Movie&
  179. ThePort& = MovieBlockPtr.MoviePort
  180. MovieCT& = MovieBlockPtr.MovieController&
  181.  
  182. CALL SETPORT(ThePort&)
  183. SELECT {EventPtr&}
  184. CASE _UpdatEvt
  185. LONG IF ThePort& = EventPtr&.EvtMessage&
  186.  
  187. autoclip = _false
  188.  
  189. FN ControllerEvent(MovieCT&,EventPtr&)
  190.  
  191. CALL BEGINUPDATE(ThePort&)
  192. OSErr% = FN UPDATEMOVIE(Movie&)
  193. CALL ENDUPDATE(ThePort&)
  194. EventPtr&.EvtNum% = 0
  195. END IF
  196. CASE _NullEvt
  197. LONG IF FN ISMOVIEDONE(Movie&)
  198. LONG IF MovieBlockPtr.MovieLoop% = _true
  199. CALL GOTOBEGINNINGOFMOVIE(Movie&)
  200. CALL startmovie(Movie&)
  201. x=FN MCMovieChanged(MovieCT&,Movie&)
  202. xelse
  203. CALL GOTOBEGINNINGOFMOVIE(Movie&)
  204. CALL stopmovie(Movie&)
  205. x=FN MCMovieChanged(MovieCT&,Movie&)
  206. END IF
  207. END IF
  208. CALL MOVIESTASK(Movie&,33)
  209. FN ControllerEvent(MovieCT&,EventPtr&)
  210. CASE ELSE
  211. FN ControllerEvent(MovieCT&,EventPtr&)
  212. END SELECT
  213. END IF
  214. NEXT WndID%
  215. CALL SETPORT(OldPort&)
  216. END IF
  217. END FN
  218.  
  219. LOCAL MODE
  220. LOCAL FN CloseMovie(MovieBlockPtr as pointer to MovieInfo,WndID%)
  221. DIM MovieCT&,Movie&,OSErr%
  222.  
  223. MovieBlockPtr = MovieBlockPtr + WndID% * SIZEOF(MovieInfo)
  224. Movie& = MovieBlockPtr.MovieH
  225. LONG IF Movie&
  226. CALL STOPMOVIE(Movie&)
  227. MovieCT& = MovieBlockPtr.MovieController&
  228. LONG IF MovieCT&
  229. CALL DISPOSEMOVIECONTROLLER(MovieCT&)
  230. END IF
  231. MovieBlockPtr.MovieH = 0
  232. MovieBlockPtr.MovieController& = 0
  233.  
  234. MovieBlockPtr.MovieLoop% = 0
  235. MovieBlockPtr.MovieAutoplay% = 0
  236. MovieBlockPtr.MovieNames$ = ""
  237.  
  238.  
  239. OSErr% = FN CLOSEMOVIEFILE(MovieBlockPtr.MovieResRefNum%)
  240. WINDOW CLOSE WndID%
  241. END IF
  242. END FN
  243.  
  244. LOCAL MODE
  245. LOCAL FN QuitMovies (MovieBlockPtr as pointer to MovieInfo)
  246. DIM WndID%
  247.  
  248. LONG IF MovieBlockPtr
  249. FOR WndID% = 1 TO 63
  250. FN CloseMovie(MovieBlockPtr,WndID%)
  251. NEXT WndID%
  252. CALL EXITMOVIES
  253. call DISPOSePtR(MovieBlockPtr)
  254. MovieBlockPtr = 0
  255. END IF
  256. END FN = MovieBlockPtr
  257.  
  258. REM FNs by MattBeedle@aol.com
  259. REM -------------------------
  260.  
  261. clear local mode
  262. local fn StrCreator (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  263. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  264. FSVRefNum% = MovieBlockPtr.MovieLocation%
  265. FSName$ = MovieBlockPtr.MovieNames$
  266. x$ = FN GetFileCreator$(FSName$,FSVRefNum%)
  267. long if x$ <> "BPLA"
  268. fn PutString (FSName$,FSVRefNum%,5002,x$)
  269. end if
  270. long if fn GetChangeCreator$ = "Y"
  271. type& = _"MooV"
  272. creator& = _"BPLA"
  273. FN SetTypeAndCreator(FSName$,FSVRefNum%,type&,creator&)
  274. end if
  275. end fn
  276.  
  277. clear local mode
  278. local fn StrType (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  279. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  280. FSVRefNum% = MovieBlockPtr.MovieLocation%
  281. FSName$ = MovieBlockPtr.MovieNames$
  282. y$ = FN GetFileType$(FSName$,FSVRefNum%)
  283. fn PutString (FSName$,FSVRefNum%,5003,y$)
  284. end fn
  285.  
  286. clear local mode
  287. local fn StrAutoPlay (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  288. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  289. FSVRefNum% = MovieBlockPtr.MovieLocation%
  290. FSName$ = MovieBlockPtr.MovieNames$
  291. long if MovieBlockPtr.MovieAutoplay% = _false
  292. fn PutString (FSName$,FSVRefNum%,5000,"N")
  293. xelse
  294. fn PutString (FSName$,FSVRefNum%,5000,"Y")
  295. end if
  296. end fn
  297.  
  298. clear local mode
  299. local fn StrLoop (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  300. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  301. FSVRefNum% = MovieBlockPtr.MovieLocation%
  302. FSName$ = MovieBlockPtr.MovieNames$
  303. long if MovieBlockPtr.MovieLoop% = _false
  304. fn PutString (FSName$,FSVRefNum%,5001,"N")
  305. xelse
  306. fn PutString (FSName$,FSVRefNum%,5001,"Y")
  307. end if
  308.  
  309. end fn
  310.  
  311. clear local mode
  312. local fn GetMovieVol% (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  313. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  314. FSVRefNum% = MovieBlockPtr.MovieLocation%
  315. end fn=FSVRefNum%
  316.  
  317. clear local mode
  318. local fn GetMovieName$ (MovieBlockPtr as pointer to MovieInfo,myWindowId)
  319. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * myWindowId
  320. long if len(MovieBlockPtr.MovieNames$)
  321. myNames$ = MovieBlockPtr.MovieNames$
  322. xelse
  323. myNames$ = ""
  324. end if
  325. end fn=myNames$
  326.  
  327. clear local mode
  328. local fn GetMovieLoop (MovieBlockPtr as pointer to MovieInfo)
  329. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  330. myMovieLoop% = MovieBlockPtr.MovieLoop%
  331. end fn = myMovieLoop%
  332.  
  333. clear local mode
  334. local fn GetMovieAutoPlay (MovieBlockPtr as pointer to MovieInfo)
  335. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  336. myMovieAuto% = MovieBlockPtr.MovieAutoplay%
  337. end fn = myMovieAuto%
  338.  
  339. clear local mode
  340. local fn ToggleMovieLoop (MovieBlockPtr as pointer to MovieInfo)
  341. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  342. long if MovieBlockPtr.MovieLoop% = _true
  343. MovieBlockPtr.MovieLoop% = _false
  344. xelse
  345. MovieBlockPtr.MovieLoop% = _true
  346. end if
  347. end fn
  348.  
  349. clear local mode
  350. local fn ToggleMovieAutoPlay (MovieBlockPtr as pointer to MovieInfo)
  351. MovieBlockPtr = MovieBlockPtr + SIZEOF(MovieInfo) * WINDOW(_activeWnd)
  352. long if MovieBlockPtr.MovieAutoplay% = _true
  353. MovieBlockPtr.MovieAutoplay% = _false
  354. xelse
  355. MovieBlockPtr.MovieAutoplay% = _true
  356. end if
  357. end fn
  358.  
  359. local fn SaveMovieInfo
  360.  
  361. myNames$ = fn GetMovieName$ (gMovieBlock&,window(1))
  362. myVol% = fn GetMovieVol% (gMovieBlock&,window(1))
  363. long if fn CheckIfResFork (myNames$,myVol%)=0
  364. fn StrCreator (gMovieBlock&,WINDOW(1))
  365. fn StrType (gMovieBlock&,WINDOW(1))
  366. fn StrAutoPlay (gMovieBlock&,WINDOW(1))
  367. fn StrLoop (gMovieBlock&,WINDOW(1))
  368. xelse
  369. fn DisplayDLOG (132)
  370. end if
  371. end fn
  372.